home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
A-Monthly Disks
/
(c)abj.d64
/
sales exp1.1
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
8KB
|
255 lines
0 DV=PEEK(186):REM WHICH DEVICE DID THIS COME FROM?
1 YR= 1990
2 REM *****************************
3 REM *AS THE YEAR CHANGES, CHANGE*
4 REM *THE ABOVE VALUE, AND TYPE: *
5 REM *RUN 10000, AND HIT <RETURN>*
6 REM +AND THIS WILL REPLACE THE +
7 REM +ORIGINAL FILE CALLED +
8 REM + SALES EXP1.1 ! +
9 REM *****************************
10 IFA=1ORPEEK(49152)=160THENGOTO25
15 A=1
20 LOAD"EXNEWML",DV,1
25 POKE53280,.:POKE53281,.:PRINT"":POKE50496,1:SYS50455:POKE49263,0
30 DIMT$(300):DIMAC$(21):DIMM$(12)
35 YR$=MID$(STR$(YR),2,4):POKE650,128
40 FORX=1TO40:BU$=BU$+"[157]":BL$=BL$+" ":DL$=DL$+"-":PL$=PL$+"[192]":NEXTX
42 BU$=BU$+BU$:LB$=BL$+BL$:LD$=DL$+DL$:IL$=LEFT$(LD$,60)+LEFT$(BU$,60)
45 FORX=1TO21:READAC$(X):NEXT
50 DATAAUTO EXPENSE - PARKING,AUTO EXPENSE - MAINTENANCE
52 DATAAUTO EXPENSE - INSURANCE,AUTO EXPENSE - FUEL
55 DATAAUTO EXPENSE - LICENSE & MISC.,ADVERTISING & PROMOTION
60 DATACOMMISSIONS,COSTS OF MFG.,DUES & PROF. ORG.,LICENSES
65 DATAINTEREST - BUS. MORTGAGE,INTEREST - CAR & MISC.,OFFICE,TAXES
70 DATAPOSTAGE,BUSINESS PUBLICATIONS,TELEPHONE,UTILITIES
75 DATALEGAL & PROFESSIONAL SERVICES,PROFESSIONAL MEETINGS,OTHER
80 FORX=1TO12:READM$(X):NEXTX
90 DATAJAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
95 T$(0)=RIGHT$(YR$,2)+"0101"+LEFT$(LB$,60)+"0000.00"
97 T$(0)=RIGHT$(YR$,2)+"0101"
100 GOSUB9000
110 PRINT:PRINT"DO YOU WANT TO ENTER SOME TRANSACTIONS? PRESS Y, N, OR[146]"
115 PRINT"(CLR) TO ERASE OLD FILES/START NEW YEAR [146]"
120 GOSUB9500:IFT$="N"THENGOTO5000
130 IFT$="Y"THENGOTO145
135 IFT$="[147]"THEN19000
140 GOTO120
145 GOSUB150:GOTO250
150 GOSUB9000:PRINT"USE CURSORS TO CHOOSE EXPENSE, HIT (RET)[146]";
160 FORX=1TO21:PRINTAC$(X);
170 IFX<21THENPRINT
180 NEXTX:X=1
190 PRINT"";
200 POKE49277,LEN(AC$(X)):SYS49249
210 GOSUB9500
220 IFT$=""ANDX<21THENPOKE49277,LEN(AC$(X)):SYS49249:X=X+1:PRINT"";:GOTO200
230 IFT$="[145]"ANDX>1THENPOKE49277,LEN(AC$(X)):SYS49249:X=X-1:PRINT"[145]";:GOTO200
240 IFT$=CHR$(13)THENA$=AC$(X):RETURN
245 GOTO210
250 REM *INPUT/EDIT TRANSACTIONS*
260 NT=1:GOSUB4000
265 Y=NT+1:IFT$(1)="NIL"ORT$(1)=""THENY=1
267 GOSUB9000:GOTO275
270 GOSUB9005
275 PRINTPL$;:PRINT" F1[146]-ADVANCE A PAGE F3[146]-BACK UP A PAGE"
280 PRINT" F5[146]-FINISH INPUT F7[146]-HELP!!"
290 PRINTPL$
300 PRINTTAB(20-(LEN(A$)/2))"";A$;"[146]"
302 Y1$=STR$(Y):PRINT" REC#";TAB(8-LEN(Y1$));"[156][146]";Y1$;"[146]"
305 IFT$(1)<>""ANDT$(1)<>"NIL"THEN320
310 T$(1)=RIGHT$(YR$,2)+"0101"+LEFT$(LB$,60)+"0000.00"
320 IFT$(Y)=""THENT$(Y)=LEFT$(T$(Y-1),6)+LEFT$(LB$,60)+"0000.00"
330 PRINT"[146]DATE: [156][146]";M$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2):PRINT
340 PRINT"[146]TRANSACTION: [156][146]":PRINTMID$(T$(Y),7,60):PRINT
350 PRINT"[146]AMOUNT: [156][146]$";RIGHT$(T$(Y),8):PRINT
360 PRINT"ENTER THE CORRECT DATA, OR <RETURN> TO ";
370 PRINT" LEAVE UNCHANGED [146]"
400 PRINT"";:SL=6:POKE49277,SL:SYS49249:F=0:PK=1:GOSUB1000
405 ONFGOTO600,610,620,700
407 IFB$=""THEN470
410 D1=0:D=0:FORX=1TO6:D=VAL(RIGHT$(B$,X)):IFD>D1THEND1=D
415 NEXTX:IFLEN(B$)<3THENT$(Y)=LEFT$(T$(Y-1),4)+RIGHT$(T$(Y),69):GOTO450
420 FORX=1TO12:IFM$(X)=LEFT$(B$,3)THENX$=RIGHT$("0"+MID$(STR$(X),2,2),2):GOTO450
430 NEXTX
440 PRINT:PRINT"CHECK THE DATE & TRY AGAIN[146]"
445 PRINT"";:SL=6:POKE49277,SL:SYS49249:GOTO400
450 D$=RIGHT$("0"+MID$(STR$(D1),2,2),2)
455 IFLEN(B$)<3THENX$=MID$(T$(Y-1),3,2)
460 T$(Y)=RIGHT$(YR$,2)+X$+D$+RIGHT$(T$(Y),67)
470 PRINT"";M$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2)
480 PRINT"";:SL=60:POKE49277,SL:SYS49249:GOSUB1000:IFB$=""THEN500
490 T$(Y)=LEFT$(T$(Y),6)+LEFT$(B$+LB$,60)+RIGHT$(T$(Y),7)
500 PRINT"";MID$(T$(Y),7,60)
510 PRINT"";:SL=7:POKE49277,SL:SYS49249:GOSUB1000:IFB$=""THEN530
520 T$(Y)=LEFT$(T$(Y),66)+RIGHT$(" "+B$,7)
522 IFMID$(T$(Y),71,1)="."THEN530
524 PRINT:PRINT"YOU MUST INPUT DECIMAL POINT AND CENTS! [146]";
525 FORV=1TO300:NEXTV
526 PRINT"";:POKE49277,7:SYS49249
528 PRINT"";:GOTO510
530 PRINT"";RIGHT$(T$(Y),7)
540 IFRIGHT$(T$(Y),67)<>LEFT$(LB$,60)+"0000.00"THENY=Y+1:IFY>NTTHENNT=NT+1
550 GOTO267
600 IFY<NT+1THENY=Y+1
605 GOTO270
610 IFY>1THENY=Y-1
615 GOTO270
620 IFT$(NT)=LEFT$(T$(NT-1),6)+LEFT$(LB$,60)+"0000.00"THENNT=NT-1
625 GOSUB4100:PRINT"[147]WANT TO INPUT OTHER TRANSACTIONS (Y/N)? [146]"
630 GOSUB9500:IFT$="Y"THENFORX=1TONT:T$(X)="":NEXTX:NT=0:GOTO145
640 IFT$<>"N"THEN630
650 PRINT"DO YOU WANT TO GO TO PRINTOUTS (Y/N)? [146]"
660 GOSUB9500:IFT$="Y"THEN5000
670 IFT$<>"N"THEN660
680 PRINT"PULL OUT YOUR DISK, AND SHUT DOWN. BYE.[146]":END
700 SYS49280:GOSUB9500:SYS49280:GOTO270
1000 B$="":PRINT""
1002 IFPK=0THENPRINTLB$;BL$;"[145][145][145]";
1005 AB=(20-(SL/2)):IFAB<1THENAB=0
1010 PRINTTAB(AB)MID$(IL$,(61-SL),SL*2);
1015 IFPK=0THEN1080
1020 GETT$:IFT$=""THEN1020
1025 IFT$=CHR$(13)THENT$="":GOTO1120
1030 IFT$="[133]"THENF=1:GOTO1120
1040 IFT$="[134]"THENF=2:GOTO1120
1050 IFT$="[135]"THENF=3:GOTO1120
1060 IFT$="[136]"THENF=4:GOTO1120
1070 POKE512,ASC(T$):PRINTT$;
1080 POKE49153,PK:POKE49165,PK:SYS49152:POKE49165,0:POKE49153,0
1090 B$="":P=0
1100 P=P+1:L=PEEK(511+P):IFL=0THEN1120
1110 B$=B$+CHR$(L):GOTO1100
1120 PK=0:RETURN
4000 REM *LOAD FILES*
4010 PRINT"[147]INSERT DATA DISK, AND HIT RETURN[146] TO LOAD":POKE198,0
4020 GOSUB9500:AN=X
4030 OPEN1,DV,2,"0:A"+STR$(AN)+YR$+",R"
4040 INPUT#1,NT
4050 FORX=1TONT:INPUT#1,T$(X):NEXTX
4060 CLOSE1:RETURN
4100 REM *SAVE FILES*
4105 PRINT"[147]SORTING THE TRANSACTIONS...":GOSUB4400:PRINT
4110 PRINT"INSERT DATA DISK, AND HIT RETURN[146] TO SAVEANY OTHER KEY TO GO BACK"
4115 GOSUB9500:IFT$=CHR$(13)THEN4120
4116 GOTO270
4119 POKE198,0
4120 C$=CHR$(34)
4125 OPEN15,DV,15:PRINT#15,"S0:A"+STR$(AN)+YR$:CLOSE15
4130 OPEN1,DV,2,"0:A"+STR$(AN)+YR$+",W"
4140 PRINT#1,NT
4150 FORX=1TONT:PRINT#1,C$;T$(X);C$:NEXTX
4160 CLOSE1:RETURN
4400 S2=NT
4401 S2=INT(S2/2):IFS2=0THEN4409
4402 S3=1:S4=NT-S2
4403 S5=S3
4404 S6=S5+S2:IFT$(S5)<T$(S6)THEN4407
4405 S7$=T$(S5):T$(S5)=T$(S6):T$(S6)=S7$:S5=S5-S2:IFS5<1THEN4407
4406 GOTO4404
4407 S3=S3+1:IFS3>S4THEN4401
4408 GOTO4403
4409 RETURN
5000 CLOSE4:OPEN4,4:PRINT#4:CLOSE4
5010 YT=0:GOSUB9000
5020 PRINT"CHOOSE A PRINTOUT:[146]"
5030 PRINT"A[146]-(YEAR) SINGLE EXPENSE REPORT"
5040 PRINT"B[146]-(YEAR) ALL EXPENSE REPORT"
5050 PRINT"C[146]-(MONTH) SINGLE EXPENSE REPORT"
5060 PRINT"D[146]-(MONTH) ALL EXPENSE REPORT"
5070 PRINT"E[146]-QUIT"
5100 GOSUB9500:T=ASC(T$)-64:IFT>5ORT<1THEN5100
5110 ONTGOTO5200,5400,5600,5800,680
5200 GOSUB150:GOSUB4000:GOSUB5205:IFM$="NIL"THENFORQ=1TO700:NEXTQ:GOTO5000
5202 GOTO5000
5205 PRINT"[147]GET YOUR PRINTER READY, AND HIT ANY KEY [146]":GOSUB9500
5210 A$=AC$(AN)
5212 MT=0:OPEN4,4
5213 PRINTTAB(10)"CHECKING EXPENSE SUMMARY OF ";A$
5214 M$=LEFT$(T$(1),3):IFM$="NIL"THENCLOSE4:PRINT"FILE EMPTY!![146]":GOTO5310
5215 CMD4
5217 PRINTTAB(30-(LEN(A$)/2))"EXPENSE SUMMARY OF ";A$
5220 PRINT:PRINT"DATE TRANSACTION";BL$;" AMOUNT"
5230 FORY=1TONT
5240 PRINTM$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2);" ";MID$(T$(Y),7,60);
5250 PRINT" ";RIGHT$(T$(Y),7)
5260 MT=MT+VAL(RIGHT$(T$(Y),7))
5270 IFMID$(T$(Y),3,2)=MID$(T$(Y+1),3,2)ANDY<>NTTHEN5290
5272 IFMT<.01THENMT$=" .00":GOTO5280
5275 MT$=RIGHT$(" "+STR$(INT(MT)),5):CT=MT-INT(MT)+.005
5276 IFCT<.01THENMT$=MT$+".00":GOTO5280
5277 MT$=MT$+MID$(STR$(CT),2,3)
5280 PRINTLEFT$(LB$,49);M$(VAL(MID$(T$(Y),3,2)));" TOTAL: ";MT$:MT=0
5290 YT=YT+VAL(RIGHT$(T$(Y),7)):NEXTY
5292 IFYT<.01THENYT$=" .00":GOTO5300
5295 YT$=RIGHT$(" "+STR$(INT(YT)),5):CT=YT-INT(YT)+.005
5296 IFCT<.01THENYT$=YT$+".00":GOTO5300
5297 YT$=YT$+MID$(STR$(CT),2,3)
5300 PRINTLEFT$(LB$,68);"---------"
5305 PRINTLEFT$(LB$,58);"YEAR TOTAL:";YT$:PRINTLEFT$(LB$,68);"========="
5307 PRINT#4:CLOSE4
5310 RETURN
5400 PRINT"[147]GET YOUR PRINTER READY, AND ENSURE YOUR ";
5410 PRINT"DISK IS IN THE DRIVE, THEN HIT ANY KEY. [146]":GOSUB9500
5420 FORAN=1TO21:GOSUB4030:YT=0:GOSUB5210:NEXTAN:GOTO5000
5600 GOSUB150:GOSUB5605:PRINT#4:CLOSE4:GOTO5000
5605 PRINT"[147]CHOOSE A MONTH: ---[157][157][157]";
5610 B$="":POKE49277,3:SYS 49152:FORP=0TO2:B$=B$+CHR$(PEEK(512+P)):NEXTP
5620 FORM=1TO12:IFM$(M)=B$THEN5630
5625 NEXTM:PRINT"CHECK SPELLING, AND TRY AGAIN!":GOTO5605
5630 SM$=RIGHT$("0"+MID$(STR$(M),2,2),2)
5640 AN=X:GOSUB4030:GOSUB5705:GOTO5000
5705 PRINT"[147]GET YOUR PRINTER READY, AND HIT ANY KEY [146]":GOSUB9500
5710 A$=AC$(AN)
5712 MT=0:OPEN4,4:CMD4:PRINTTAB(30-(LEN(A$)/2))"EXPENSE SUMMARY OF ";A$
5720 PRINT:PRINT"DATE TRANSACTION";BL$;" AMOUNT"
5730 FORY=1TONT:IFMID$(T$(Y),3,2)<>SM$THEN5790
5740 PRINTM$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2);" ";MID$(T$(Y),7,60);
5750 PRINT" ";RIGHT$(T$(Y),7)
5760 MT=MT+VAL(RIGHT$(T$(Y),7))
5770 IFMID$(T$(Y),3,2)=MID$(T$(Y+1),3,2)THEN5290
5772 IFMT<.01THENMT$=" .00":GOTO5780
5775 MT$=RIGHT$(" "+STR$(INT(MT)),5):CT=MT-INT(MT)+.005
5776 IFCT<.01THENMT$=MT$+".00":GOTO5780
5777 MT$=MT$+MID$(STR$(CT),2,3)
5778 PRINTLEFT$(LB$,68);"---------"
5780 PRINTLEFT$(LB$,58);M$(VAL(MID$(T$(Y),3,2)));" TOTAL: ";MT$:MT=0
5785 PRINTLEFT$(LB$,68);"========="
5790 NEXTY:RETURN
5800 REM ALL EXPENSES
5805 PRINT"[147]CHOOSE A MONTH: ---[157][157][157]";
5810 B$="":POKE49277,3:SYS 49152:FORP=0TO2:B$=B$+CHR$(PEEK(512+P)):NEXTP
5820 FORM=1TO12:IFM$(M)=B$THEN5830
5825 NEXTM:PRINT"CHECK SPELLING, AND TRY AGAIN!":GOTO5805
5830 SM$=RIGHT$("0"+MID$(STR$(M),2,2),2)
5835 PRINT"[147]GET YOUR PRINTER READY, AND ENSURE YOUR ";
5837 PRINT"DISK IS IN THE DRIVE, THEN HIT ANY KEY. [146]":GOSUB9500
5840 FORAN=1TO21:GOSUB4030:GOSUB5710:PRINT#4:CLOSE4:NEXTAN:GOTO5000
8999 END
9000 PRINT"[147] [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
9002 GOTO9010
9005 PRINT" [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
9010 PRINTTAB(10)"[221]BUSINESS EXPENSES[146][221]"
9020 PRINTTAB(10)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
9030 RETURN
9200 B$="":A=0
9210 POKE49277,SL:SYS49152
9220 P=PEEK(512+A):IFP=0THENGOTO9250
9230 B$=B$+CHR$(P)
9240 A=A+1:GOTO9220
9250 RETURN
9300 PRINT"[145]";:D=D1:R=R1:GOSUB9100:POKE49277,(SL+1):SYS49249
9310 PRINT:D=D2:R=R2:GOSUB9110:PRINTCA$;
9320 GOSUB9200
9330 IFB$=""THEND=D1:R=R1:GOSUB9100:POKE49277,(SL+1):SYS49249:RETURN
9340 RETURN
9500 GETT$:IFT$=""THEN9500
9510 RETURN
10000 SAVE"@0:SALES EXP1.1",8:END
17000 OPEN15,8,15:INPUT#15,EN,EM$,ET,ES:PRINTEN;EM$:CLOSE15:RETURN
19000 PRINT"[147]ARE YOU SURE (Y/N)?"
19005 GOSUB9500:IFT$="Y"THEN19010
19007 RUN
19010 NT=1:T$(1)="NIL":FORAN=1TO21
19020 GOSUB4125:NEXTAN:RUN